package com.cskaoyan.javase.basic._4scanner;

import java.util.Scanner;

/**
 * 如何解决混用导致的nextLine接收不到字符串?
 *      1. 先单独使用一个nextLine把回车接收掉，有点笨笨的。
 *      2. 换个对象,不使用同一个Scanner对象，这种方式不推荐，多个对象浪费空间。
 *      3. 推荐使用方式三,不要混用两种方法,永远使用一种方法
 *          建议使用nextLine
 *
 * @since 11:53
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // Scanner sc2 = new Scanner(System.in);
        // 3.调用方法
        System.out.println("请键盘输入一个整数: ");
        String numStr = sc.nextLine();
        // 需要将String转换成int类型
        // Integer是int类型的包装类
        int num = Integer.parseInt(numStr);
        System.out.println("请输入一个字符串: ");
        String str = sc.nextLine();
        System.out.println("键盘录入的数字是: " + numStr);
        // soutv 自动输出最近的变量
        // 在这里str没有等到键盘输入,就被回车结束扫描,所以它没有得到任何字符串,在计算机中,什么都没有也是一个字符,是一个绝对空字符,字符串长度=0,编码值也是0
        System.out.println("键盘录入的字符串是: " + str);
        System.out.println(str.length());
    }
}
